import java.util.Random;

public final class Font extends Renderer2D {
	private boolean aBoolean1496 = true;
	private boolean aBoolean1497 = true;
	byte[][] aByteArrayArray1500 = new byte[256][];
	int[] anIntArray1501 = new int[256];
	int[] anIntArray1502 = new int[256];
	int[] anIntArray1503 = new int[256];
	int[] anIntArray1504 = new int[256];
	public int[] anIntArray1505 = new int[256];
	public int anInt1506;
	Random aRandom1507 = new Random();
	boolean aBoolean1508 = false;

	public Font(boolean bool, Archive archive, int i, String string) {
		Packet packet = new Packet(archive.method154(string
			+ ".dat", null));
		Packet packet_0_ = new Packet(archive.method154(
			"index.dat", null));
		packet_0_.offset = packet.getUShort() + 4;
		while (i >= 0) {
			aBoolean1496 = !aBoolean1496;
		}
		int i_2_ = packet_0_.getUByte();
		if (i_2_ > 0) {
			packet_0_.offset += (i_2_ - 1) * 3;
		}
		for (int i_3_ = 0; i_3_ < 256; i_3_++) {
			(this).anIntArray1503[i_3_] = packet_0_.getUByte();
			(this).anIntArray1504[i_3_] = packet_0_.getUByte();
			int i_4_ = ((this).anIntArray1501[i_3_] = packet_0_.getUShort());
			int i_5_ = ((this).anIntArray1502[i_3_] = packet_0_.getUShort());
			int i_6_ = packet_0_.getUByte();
			int i_7_ = i_4_ * i_5_;
			(this).aByteArrayArray1500[i_3_] = new byte[i_7_];
			if (i_6_ == 0) {
				for (int i_8_ = 0; i_8_ < i_7_; i_8_++) {
					(this).aByteArrayArray1500[i_3_][i_8_] = packet.getByte();
				}
			} else if (i_6_ == 1) {
				for (int i_9_ = 0; i_9_ < i_4_; i_9_++) {
					for (int i_10_ = 0; i_10_ < i_5_; i_10_++) {
						(this).aByteArrayArray1500[i_3_][i_9_ + i_10_ * i_4_] = packet
							.getByte();
					}
				}
			}
			if (i_5_ > anInt1506 && i_3_ < 128) {
				anInt1506 = i_5_;
			}
			(this).anIntArray1503[i_3_] = 1;
			anIntArray1505[i_3_] = i_4_ + 2;
			int i_11_ = 0;
			for (int i_12_ = i_5_ / 7; i_12_ < i_5_; i_12_++) {
				i_11_ += ((this).aByteArrayArray1500[i_3_][i_12_ * i_4_]);
			}
			if (i_11_ <= i_5_ / 7) {
				anIntArray1505[i_3_]--;
				(this).anIntArray1503[i_3_] = 0;
			}
			i_11_ = 0;
			for (int i_13_ = i_5_ / 7; i_13_ < i_5_; i_13_++) {
				i_11_ += ((this).aByteArrayArray1500[i_3_][i_4_ - 1 + i_13_ * i_4_]);
			}
			if (i_11_ <= i_5_ / 7) {
				anIntArray1505[i_3_]--;
			}
		}
		if (bool) {
			anIntArray1505[32] = anIntArray1505[73];
		} else {
			anIntArray1505[32] = anIntArray1505[105];
		}
	}

	public void method480(boolean bool, String string, int i, int i_14_, int i_15_) {
		method485(2245, i_14_ - method484(string, (byte) -53), i, i_15_, string);
		if (!bool) {
			/* empty */
		}
	}

	public void method481(int i, int i_16_, int i_17_, int i_18_, String string) {
		method485(2245, i - method484(string, (byte) -53) / 2, i_18_, i_17_, string);
		i_16_ = 21 / i_16_;
	}

	public void method482(boolean bool, int i_19_, int i_20_, int i_21_, String string) {
			method489(i_19_, i_21_ - method483((byte) 35, string) / 2, i_20_, bool, string, -39629);
	}

	public int method483(byte i, String string) {
		if (string == null) {
			return 0;
		}
		int i_22_ = 0;
		for (int i_23_ = 0; i_23_ < string.length(); i_23_++) {
			if (string.charAt(i_23_) == '@' && i_23_ + 4 < string.length()
				&& string.charAt(i_23_ + 4) == '@') {
				i_23_ += 4;
			} else {
				i_22_ += anIntArray1505[string.charAt(i_23_)];
			}
		}
		if (i != 35) {
			for (int i_24_ = 1; i_24_ > 0; i_24_++) {
				/* empty */
			}
		}
		return i_22_;
	}

	public int method484(String string, byte i) {
		if (string == null) {
			return 0;
		}
		int i_25_ = 0;
		if (i != -53) {
			for (int i_26_ = 1; i_26_ > 0; i_26_++) {
				/* empty */
			}
		}
		for (int i_27_ = 0; i_27_ < string.length(); i_27_++) {
			i_25_ += anIntArray1505[string.charAt(i_27_)];
		}
		return i_25_;
	}

	public void method485(int i, int i_28_, int i_29_, int i_30_, String string) {
		if (i != 2245) {
			for (int i_31_ = 1; i_31_ > 0; i_31_++) {
				/* empty */
			}
		}
		if (string != null) {
			i_30_ -= anInt1506;
			for (int i_32_ = 0; i_32_ < string.length(); i_32_++) {
				char c = string.charAt(i_32_);
				if (c != ' ') {
					method492(((this).aByteArrayArray1500[c]), i_28_ + ((this).anIntArray1503[c]),
						i_30_ + ((this).anIntArray1504[c]), ((this).anIntArray1501[c]),
						((this).anIntArray1502[c]), i_29_);
				}
				i_28_ += anIntArray1505[c];
			}
		}
	}

	public void method486(int i, byte i_33_, int i_34_, String string, int i_35_, int i_36_) {
		if (string != null) {
			i_35_ -= method484(string, (byte) -53) / 2;
			if (i_33_ == 4) {
			} else {
				aBoolean1497 = !aBoolean1497;
			}
			i -= anInt1506;
			for (int i_37_ = 0; i_37_ < string.length(); i_37_++) {
				char c = string.charAt(i_37_);
				if (c != ' ') {
					method492(
						((this).aByteArrayArray1500[c]),
						(i_35_ + (this).anIntArray1503[c]),
						(i + (this).anIntArray1504[c] + (int) (Math.sin(i_37_ / 2.0 + i_34_ / 5.0) * 5.0)),
						(this).anIntArray1501[c], (this).anIntArray1502[c], i_36_);
				}
				i_35_ += anIntArray1505[c];
			}
		}
	}

	public void method487(int i, int i_38_, byte i_39_, String string, int i_40_, int i_41_) {
		if (string != null) {
			i_40_ -= method484(string, (byte) -53) / 2;
			if (i_39_ != 1) {
				for (int i_42_ = 1; i_42_ > 0; i_42_++) {
					/* empty */
				}
			}
			i -= anInt1506;
			for (int i_43_ = 0; i_43_ < string.length(); i_43_++) {
				char c = string.charAt(i_43_);
				if (c != ' ') {
					method492(
						((this).aByteArrayArray1500[c]),
						(i_40_ + (this).anIntArray1503[c] + (int) (Math.sin(i_43_ / 5.0 + i_41_
							/ 5.0) * 5.0)),
						(i + (this).anIntArray1504[c] + (int) (Math.sin(i_43_ / 3.0 + i_41_ / 5.0) * 5.0)),
						(this).anIntArray1501[c], (this).anIntArray1502[c], i_38_);
				}
				i_40_ += anIntArray1505[c];
			}
		}
	}

	public void method488(int i, String string, int i_44_, int i_45_, int i_46_, int i_47_,
		int i_48_) {
		if (string != null) {
			double d = 7.0 - i_47_ / 8.0;
			while (i >= 0) {
				for (int i_49_ = 1; i_49_ > 0; i_49_++) {
					/* empty */
				}
			}
			if (d < 0.0) {
				d = 0.0;
			}
			i_45_ -= method484(string, (byte) -53) / 2;
			i_46_ -= anInt1506;
			for (int i_50_ = 0; i_50_ < string.length(); i_50_++) {
				char c = string.charAt(i_50_);
				if (c != ' ') {
					method492(
						((this).aByteArrayArray1500[c]),
						(i_45_ + (this).anIntArray1503[c]),
						(i_46_ + (this).anIntArray1504[c] + (int) (Math.sin(i_50_ / 1.5 + i_48_) * d)),
						(this).anIntArray1501[c], (this).anIntArray1502[c], i_44_);
				}
				i_45_ += anIntArray1505[c];
			}
		}
	}

	public void method489(int i, int i_51_, int i_52_, boolean bool, String string, int i_53_) {
		(this).aBoolean1508 = false;
		if (i_53_ == -39629) {
			int i_54_ = i_51_;
			if (string != null) {
				i_52_ -= anInt1506;
				for (int i_55_ = 0; i_55_ < string.length(); i_55_++) {
					if (string.charAt(i_55_) == '@' && i_55_ + 4 < string.length()
						&& string.charAt(i_55_ + 4) == '@') {
						int i_56_ = method491(string.substring(i_55_ + 1, i_55_ + 4));
						if (i_56_ != -1) {
							i = i_56_;
						}
						i_55_ += 4;
					} else {
						char c = string.charAt(i_55_);
						if (c != ' ') {
							if (bool) {
								method492(((this).aByteArrayArray1500[c]), i_51_
									+ (this).anIntArray1503[c] + 1, i_52_
									+ (this).anIntArray1504[c] + 1, ((this).anIntArray1501[c]),
									((this).anIntArray1502[c]), 0);
							}
							method492(((this).aByteArrayArray1500[c]), i_51_
								+ ((this).anIntArray1503[c]), i_52_ + ((this).anIntArray1504[c]),
								((this).anIntArray1501[c]), ((this).anIntArray1502[c]), i);
						}
						i_51_ += anIntArray1505[c];
					}
				}
				if ((this).aBoolean1508) {
					Renderer2D.method463(i_54_, 8388608, (i_52_ + (int) (anInt1506 * 0.7)),
						i_51_ - i_54_, true);
				}
			}
		}
	}

	public void method490(boolean bool, int i, int i_57_, int i_58_, int i_59_, String string) {
		if (string != null) {
			(this).aRandom1507.setSeed(i);
			int i_61_ = (((this).aRandom1507.nextInt() & 0x1f) + 192);
			i_59_ -= anInt1506;
			for (int i_62_ = 0; i_62_ < string.length(); i_62_++) {
				if (string.charAt(i_62_) == '@' && i_62_ + 4 < string.length()
					&& string.charAt(i_62_ + 4) == '@') {
					int i_63_ = method491(string.substring(i_62_ + 1, i_62_ + 4));
					if (i_63_ != -1) {
						i_58_ = i_63_;
					}
					i_62_ += 4;
				} else {
					char c = string.charAt(i_62_);
					if (c != ' ') {
						if (bool) {
							method494(i_57_ + ((this).anIntArray1503[c]) + 1, true, 0,
								((this).aByteArrayArray1500[c]), i_59_ + ((this).anIntArray1504[c])
									+ 1, ((this).anIntArray1502[c]), ((this).anIntArray1501[c]),
								192);
						}
						method494(i_57_ + ((this).anIntArray1503[c]), true, i_58_,
							((this).aByteArrayArray1500[c]), i_59_ + ((this).anIntArray1504[c]),
							((this).anIntArray1502[c]), ((this).anIntArray1501[c]), i_61_);
					}
					i_57_ += anIntArray1505[c];
					if (((this).aRandom1507.nextInt() & 0x3) == 0) {
						i_57_++;
					}
				}
			}
		}
	}

	public int method491(String string) {
		if (string.equals("red")) {
			return 16711680;
		}
		if (string.equals("gre")) {
			return 65280;
		}
		if (string.equals("blu")) {
			return 255;
		}
		if (string.equals("yel")) {
			return 16776960;
		}
		if (string.equals("cya")) {
			return 65535;
		}
		if (string.equals("mag")) {
			return 16711935;
		}
		if (string.equals("whi")) {
			return 16777215;
		}
		if (string.equals("bla")) {
			return 0;
		}
		if (string.equals("lre")) {
			return 16748608;
		}
		if (string.equals("dre")) {
			return 8388608;
		}
		if (string.equals("dbl")) {
			return 128;
		}
		if (string.equals("or1")) {
			return 16756736;
		}
		if (string.equals("or2")) {
			return 16740352;
		}
		if (string.equals("or3")) {
			return 16723968;
		}
		if (string.equals("gr1")) {
			return 12648192;
		}
		if (string.equals("gr2")) {
			return 8453888;
		}
		if (string.equals("gr3")) {
			return 4259584;
		}
		if (string.equals("str")) {
			(this).aBoolean1508 = true;
		}
		if (string.equals("end")) {
			(this).aBoolean1508 = false;
		}
		return -1;
	}

	private void method492(byte[] is, int i, int i_65_, int i_66_, int i_67_, int i_68_) {
		int i_69_ = i + i_65_ * Renderer2D.width;
		int i_70_ = Renderer2D.width - i_66_;
		int i_71_ = 0;
		int i_72_ = 0;
		if (i_65_ < Renderer2D.topY) {
			int i_73_ = Renderer2D.topY - i_65_;
			i_67_ -= i_73_;
			i_65_ = Renderer2D.topY;
			i_72_ += i_73_ * i_66_;
			i_69_ += i_73_ * Renderer2D.width;
		}
		if (i_65_ + i_67_ >= Renderer2D.bottomY) {
			i_67_ -= i_65_ + i_67_ - Renderer2D.bottomY + 1;
		}
		if (i < Renderer2D.topX) {
			int i_74_ = Renderer2D.topX - i;
			i_66_ -= i_74_;
			i = Renderer2D.topX;
			i_72_ += i_74_;
			i_69_ += i_74_;
			i_71_ += i_74_;
			i_70_ += i_74_;
		}
		if (i + i_66_ >= Renderer2D.bottomX) {
			int i_75_ = i + i_66_ - Renderer2D.bottomX + 1;
			i_66_ -= i_75_;
			i_71_ += i_75_;
			i_70_ += i_75_;
		}
		if (i_66_ > 0 && i_67_ > 0) {
			method493(Renderer2D.pixels, is, i_68_, i_72_, i_69_, i_66_, i_67_,
				i_70_, i_71_);
		}
	}

	private void method493(int[] is, byte[] is_76_, int i, int i_77_, int i_78_, int i_79_,
		int i_80_, int i_81_, int i_82_) {
		int i_83_ = -(i_79_ >> 2);
		i_79_ = -(i_79_ & 0x3);
		for (int i_84_ = -i_80_; i_84_ < 0; i_84_++) {
			for (int i_85_ = i_83_; i_85_ < 0; i_85_++) {
				if (is_76_[i_77_++] != 0) {
					is[i_78_++] = i;
				} else {
					i_78_++;
				}
				if (is_76_[i_77_++] != 0) {
					is[i_78_++] = i;
				} else {
					i_78_++;
				}
				if (is_76_[i_77_++] != 0) {
					is[i_78_++] = i;
				} else {
					i_78_++;
				}
				if (is_76_[i_77_++] != 0) {
					is[i_78_++] = i;
				} else {
					i_78_++;
				}
			}
			for (int i_86_ = i_79_; i_86_ < 0; i_86_++) {
				if (is_76_[i_77_++] != 0) {
					is[i_78_++] = i;
				} else {
					i_78_++;
				}
			}
			i_78_ += i_81_;
			i_77_ += i_82_;
		}
	}

	private void method494(int i, boolean bool, int i_87_, byte[] is, int i_88_, int i_89_,
		int i_90_, int i_91_) {
		int i_92_ = i + i_88_ * Renderer2D.width;
		int i_93_ = Renderer2D.width - i_90_;
		int i_94_ = 0;
		int i_95_ = 0;
		if (bool) {
			if (i_88_ < Renderer2D.topY) {
				int i_96_ = Renderer2D.topY - i_88_;
				i_89_ -= i_96_;
				i_88_ = Renderer2D.topY;
				i_95_ += i_96_ * i_90_;
				i_92_ += i_96_ * Renderer2D.width;
			}
			if (i_88_ + i_89_ >= Renderer2D.bottomY) {
				i_89_ -= i_88_ + i_89_ - Renderer2D.bottomY + 1;
			}
			if (i < Renderer2D.topX) {
				int i_97_ = Renderer2D.topX - i;
				i_90_ -= i_97_;
				i = Renderer2D.topX;
				i_95_ += i_97_;
				i_92_ += i_97_;
				i_94_ += i_97_;
				i_93_ += i_97_;
			}
			if (i + i_90_ >= Renderer2D.bottomX) {
				int i_98_ = i + i_90_ - Renderer2D.bottomX + 1;
				i_90_ -= i_98_;
				i_94_ += i_98_;
				i_93_ += i_98_;
			}
			if (i_90_ > 0 && i_89_ > 0) {
				method495(i_95_, i_93_, i_94_, i_92_, i_91_, Renderer2D.pixels,
					i_87_, 2, i_89_, i_90_, is);
			}
		}
	}

	private void method495(int i, int i_99_, int i_100_, int i_101_, int i_102_, int[] is,
		int i_103_, int i_104_, int i_105_, int i_106_, byte[] is_107_) {
		if (i_104_ < 2 || i_104_ > 2) {
			aBoolean1496 = !aBoolean1496;
		}
		i_103_ = (((i_103_ & 0xff00ff) * i_102_ & ~0xff00ff) + ((i_103_ & 0xff00) * i_102_ & 0xff0000)) >> 8;
		i_102_ = 256 - i_102_;
		for (int i_108_ = -i_105_; i_108_ < 0; i_108_++) {
			for (int i_109_ = -i_106_; i_109_ < 0; i_109_++) {
				if (is_107_[i++] != 0) {
					int i_110_ = is[i_101_];
					is[i_101_++] = ((((i_110_ & 0xff00ff) * i_102_ & ~0xff00ff) + ((i_110_ & 0xff00)
						* i_102_ & 0xff0000)) >> 8)
						+ i_103_;
				} else {
					i_101_++;
				}
			}
			i_101_ += i_99_;
			i += i_100_;
		}
	}
}
